8
תגובות

sql type

פתח itamarhadad ,
מה ההבדל בין TEXT TINYTEXT וMEDIUMTEXT
איך אני מגדיר להם LENGTH

שאלות כלליות:
באיזה פורמט צריכה להיות עמודה שמכילה USERNAME אם הוא עד 18 תווים וגם איך אני מגדיר לו את זה?
באיזה פורמט צריכה להיות עמודה שמכילה PASSWORD אם הוא עד 18 תווים וגם איך אני מגדיר לו את זה?
באיזה פורמט צריכה להיות עמודה שמכילה תגובה/הודעה בצאט?

8 תשובות

avatar ענה intval ב 14 ליוני 2012 #

כמו שהשם אמור להגיד לך, ההבדל הוא באורך הטקסט הניתן לשמירה:

TINYTEXT  256 bytes  
TEXT  65,535 bytes  ~64kb
MEDIUMTEXT   16,777,215 bytes ~16MB
LONGTEXT  4,294,967,295 bytes ~4GB


ההבדל בין הטקסטים ל varchar הוא באופן השמירה של הנתונים בדיסק.
לא משהו שאמור להתריד אותך, אבל באופן כללי ההבדל הוא ש
varchar הוא עד 64kb, והוא נשמר בנפרד משאר נתוני הטבלה, ככה שמתבצעת קריאת i/o נוספת כשאתה שולף משהו מהטבלה הזו. מצד שני, char וכל הטקסטים שמורים באותו מקום, אבל אם הגדרת את גודל העמודה בתור text(100) למשל, עבור כל השורה ישמרו 100 תויים ביחד עם שאר נתוני הטבלה, גם אם הזנת רק 5 אותיות באותו שדה. (שאר ה95 ישמרו בתור תו ריק). ככה שזה פשוט יתפוס יותר מקום בזיכרון.

כל זה לא אמור להדאיג אותך, עקב כך התשובות להשאלה שלך הם:

username וגם password (שאתה בטח מבין שאין שום הבדל ביניהם) אמורים להישמר בתור varchar(18)
הודעה בצאט יכולה להיות די ארוכה לכן text יהיה האופציה המתאימה בשביל זה.

avatar ענה itamarhadad ב 14 ליוני 2012 #

varchar הוא עד 64kb, והוא נשמר בנפרד משאר נתוני הטבלה, ככה שמתבצעת קריאת i/o נוספת כשאתה שולף משהו מהטבלה הזו.
אתה יכול להסביר שוב את הקריאה הנוספת ובמה היא פוגעת

ביעקרון עכשיו העמודות האלה בפורמט TEXT אם אני ימיר אותם לVARCHAR הם לא יפגעו??
ואם אני רוצה שאורך המשתמש והסיסמא יגיע עד 18 תווים אני כותב ככה VARCHAR(18(

avatar ענה intval ב 14 ליוני 2012 #

אני לא רוצה להיכנס למונחים של מבנה המחשב ומערכות הפעלה.
בעיקרון i/o זה קריאה כתיבה מדיסק. תוכל לנחש לבד מה רע בקריאה מדיסק.

לא יקרה שום דבר עם תמיר אותם ל varchar
הדרך הנכונה זה לכתוב varchar ובסוגריים את האורך, כמו שהדגמת
אבל אם תעשה את זה דרך phpMyAdmin יהיה עוד יותר פשוט.

avatar ענה itamarhadad ב 14 ליוני 2012 #

סבבה חח
בטח שמת לב שאני כל פעם שואל על מהירות פשוט אני מפחד לעשות צעד במסד שיאט לי את כל האתר..

avatar ענה intval ב 14 ליוני 2012 #

שאלות כאלה שואלים אחרי שיש אתר והוא מתחיל להאט, לא במהלך הפיתוח שלו,
כיוון שהרגע שבו האתר יתחיל להאט יכול בכלל לא להגיע.
---
אני לא כל כך מצליח לעקוב מי שואל מה כשהשם שלך זה משתמש_מספר-רנדומלי-כלשהו.

avatar ענה itamarhadad ב 14 ליוני 2012 #

חחח אני רוצה להירשם אבל אני מפחד מהאפשרות שזה פייסבוק..
מה אתה מקבל מהאתר כפרמטר?
ולגבי האתר אני כבר בניתי אותו מלפני שנתיים,עשיתי מערכת פורומים משלי כלומר אני בניתי עם אפשרויות ציטוט עריכה וכו'
בנוסף יש צאט AJAX ואפשרות להתראות מהצאט במהלך השהייה באתר ללא צורך ברענון..
הבעיה בפורום שהוא בסגנון של תפוז ואז הוא מוריד את כל האשכולות + התגובות + התוכן +ובודק מי מחובר מהמשתמשים ככה שכל דבר קטן מאיט..

avatar ענה itamarhadad ב 14 ליוני 2012 #

לשמירה של תו אחד במסד אני משתמש בCHAR עם LENGTH 1?

avatar ענה intval ב 14 ליוני 2012 #

כן.